The present invention relates to data center infrastructure, and more particularly, this invention relates to improving fabric bandwidth utilization by avoiding unknown unicast floods resulting from switch MAC address table overflows.
In packet-switched network switches, look-up is typically performed on a destination media access control (MAC) address to discover an actual destination port of a switching device for forwarding the packet. This look-up is performed on a MAC address learning table. Most systems utilize a switching processor of some kind, such as an application specific integrated circuit (ASIC), for this determination. The switching processor maintains the look-up table(s) for performing the look-up resolution, which in typical networks may be rather long, possibly having thousands of entries. The look-up table(s) are either stored on chip or stored external to the chip.
When a switch's MAC address table becomes full, there is no capacity for learning new MAC address entries, even though new, unknown MAC addresses may be discovered by the switch during packet processing. In this case, when a unicast packet arrives with a destination MAC that is not in the MAC address table, the switch may neither “learn” the MAC address from the incoming packet nor is the switch capable of determining which port to forward the incoming packet to since the MAC address is not associated with an egress port of the switch.
In order to account for this situation, currently, default behavior of the switch is to create an unknown unicast flood (unicast packet sent to multiple ports) on all of the egress ports (excluding the incoming port on which the packet was received) as if the unicast flood was a broadcast packet (a multicast packet). In between the time that the unicast flood is sent and a response is received, it is necessary for one or more MAC address entries in the MAC address table to age out in order for the response from a device having the destination MAC address to allow the switch to “learn” the responding device's MAC address by creating a MAC address/switch port association for future forwarding reference. If the MAC address table remains full (i.e., no existing MAC address entries age out during the response interval) then the same problem persists and broadcast of the unknown unicast floods the fabric again and again.
There are two problems with this default switch behavior. First, this behavior consumes critical resources, such as fabric bandwidth, and second, this behavior may cause security problems where unintended hosts receive sensitive traffic (in the form of the unicast flood).
Accordingly, it would be beneficial to have a system and/or method capable of solving the problem of receiving a packet having unknown MAC address without producing a unicast flood.